package com.rainbow.support.half.message.handler.consumer;

import com.rainbow.support.half.message.entity.HalfMessagePayload;
import org.springframework.lang.NonNull;

/**
 * rocketMq半事务统一处理
 * 消费者统一处理接口规范
 * 定义一个消费者处理规范
 * @author 傅为地
 */
public interface HalfMsgConsumerHandler extends ValidateConsumerHandler {


    /**
     * Mq消费者,本地业务逻辑和事务日志处理
     * 不推荐采用此方法处理消费者,消息体内日期格式可能存在问题
     * 推荐采用{@link #process(HalfMessagePayload producer)}
     * @param msg 消息主体
     * @return 业务处理结果
     */
    @Deprecated
    boolean process(@NonNull String msg);


    /**
     * Mq消费者,本地业务逻辑和事务日志处理
     * @param msg 消息主体
     * @return 业务处理结果
     */
    boolean process(@NonNull HalfMessagePayload msg);


}
